export default {
    //命名空间
    //作用:能够让辅助函数指定模块进行属性指定映射
    //通过product.js操作car.js种的模块
    namespaced: true,
    state:{
        name:"你以为你在接受谁的爱,一个天神的爱",
        carts:[]
    },
    //同样的引用地址会引起数据的改变
    mutations:{
        LOG(state){
            //测试函数
            console.log(state.name)
        },
        //加入购物车的方法
        SET_CART(state,payload){

        },
        //让数量减一
        DECREASE_CART(state,payload){
             //根据传递过来的payload的id
             //查找carts中的数据
        },
        SETCARTS(state,payload){
            //自己定义数据结构
            //刚开始carts中没有值所以肯定返回undefind
            let target = state.carts.find(item => item.id === payload.id);
            if(!target){
                let obj ={
                    title:payload.title,
                    price:payload.price,
                    id:payload.id,
                    count:1
                }
                state.carts.push(obj)
            }else{
                
            }
        },
        //让库存增加
        /**
         * 通过payload的id,找到state.products中对应的数据
         * 让inventory + 1
         */
        INCREASE_INVENTORY(state,payload){
             
        }
    },
    actions:{
        //解决不同的模块之间操作mutationb和action
        ADD_TO_CART(context,payload){
            //加入购物车按钮获取当前点击的这条的数据
            //加入到cart模块中的carts数组中
            //判断如果carts数组中存在这条数据,让数量+1
            //如果不存在直接加入数组中
            //添加根节点{root:true}
             context.commit("SETCARTS",payload);
             context.commit("product/DECREASE_INVENTORY",payload,{root:true})
        },
        //移除购物车
        REMOVE_CART(context,payload){
                //自己的数量减一

                //product模块中的products对应的数据数量+1
        }
    },
    getters:{},
    modules:{}
}